Bicycle
last analyzed

Complexity

Total Complexity 0

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Test Coverage

Coverage 90.91%

Importance

Changes 0
Metric Value
eloc 69
dl 0
loc 78
ccs 10
cts 11
cp 0.9091
c 0
b 0
f 0
wmc 0
1 13
import { ApiProperty } from '@nestjs/swagger';
2 13
import { City } from '../../cities/entities/city.entity';
3 13
import {
4
  Entity,
5
  PrimaryGeneratedColumn,
6
  Column,
7
  CreateDateColumn,
8
  UpdateDateColumn,
9
  ManyToOne,
10
  JoinColumn,
11
} from 'typeorm';
12
13
@Entity()
14 13
export class Bicycle {
15
  @ApiProperty({
16
    description: 'Unique identifier of the bicycle',
17
    example: '123e4567-e89b-12d3-a456-426614174000',
18
    format: 'uuid',
19
  })
20
  @PrimaryGeneratedColumn('uuid')
21 13
  id: string;
22
23
  @ApiProperty({
24
    description: 'Battery level of the bicycle (0-100)',
25
    example: 100,
26
    default: 100,
27
    type: Number,
28
  })
29
  @Column({ type: 'int', default: 100 })
30 13
  batteryLevel: number;
31
32
  @ApiProperty({
33
    description: 'Latitude coordinate of the bicycle',
34
    example: 57.70887,
35
    required: false,
36
    nullable: true,
37
    type: Number,
38
  })
39
  @Column('float', { nullable: true })
40 13
  latitude?: number;
41
42
  @ApiProperty({
43
    description: 'Longitude coordinate of the bicycle',
44
    example: 11.97456,
45
    required: false,
46
    nullable: true,
47
    type: Number,
48
  })
49
  @Column('float', { nullable: true })
50 13
  longitude?: number;
51
52
  @ApiProperty({
53
    description: 'Current status of the bicycle',
54
    enum: ['Rented', 'Available', 'Service'],
55
    default: 'Available',
56
    example: 'Available',
57
  })
58
  @Column({
59
    type: 'simple-enum',
60
    enum: ['Rented', 'Available', 'Service'],
61
    default: 'Available',
62
  })
63 13
  status: 'Rented' | 'Available' | 'Service';
64
65
  @ApiProperty({
66
    description: 'City where the bicycle is located',
67
    type: () => City,
68
    required: false,
69
    nullable: true,
70
  })
71 5
  @ManyToOne(() => City, { nullable: true })
72
  @JoinColumn()
73 13
  city: City;
74
75
  @ApiProperty({
76
    description: 'Creation timestamp',
77
    example: '2025-01-02T12:10:00Z',
78
    nullable: true,
79
  })
80
  @CreateDateColumn({ nullable: true })
81 13
  createdAt: Date;
82
83
  @ApiProperty({
84
    description: 'Last update timestamp',
85
    example: '2025-01-02T12:10:00Z',
86
    nullable: true,
87
  })
88
  @UpdateDateColumn({ nullable: true })
89 13
  updatedAt: Date;
90
}
91